home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 038a / aplibs91.zip / INIT-U.BAS < prev    next >
BASIC Source File  |  1991-06-17  |  7KB  |  205 lines

  1.  
  2. '                      ╔════════════════════════════╗
  3. '                      ║                            ║
  4. '                      ║         INIT_U.BAS         ║
  5. '                      ║                            ║
  6. '                      ║ HB's AP LIBRARY INITIALIZE ║
  7. '                      ║                            ║
  8. '                      ╚════════════════════════════╝
  9.  
  10.  
  11.                             $COMPILE UNIT
  12.                             $ERROR ALL OFF
  13.  
  14.  %False = 0
  15.  %True = NOT %False
  16.  %AX = 1:  %BX = 2:  %CX = 3:  %DX = 4
  17.  
  18.  DEFINT A-Z
  19.  
  20.  EXTERNAL RD$, VideoSeg&, ColorDisplay, NeedDCon, CursorTop, CursorBottom
  21.  EXTERNAL OrigL, OrigC
  22.  EXTERNAL Up2B$, Esc2Q$, F1Help$, F2Fun$, EnHelp$
  23.  EXTERNAL InitPrt$, GraphicsChrSetOn$, GraphicsChrSetOff$, BoldPrtOn$
  24.  EXTERNAL BoldPrtOff$, ItalicPrtOn$, ItalicPrtOff$, RegPrt$, FastPrt$
  25.  EXTERNAL WidePrt$, WidePrtOff$, BigPrtOn$, BigPrtOff$, LQPrt$, DraftPrt$
  26.  EXTERNAL MicroPrtOn$, MicroPrtOff$, ElitePrt$, PicaPrt$, ReverseLF$
  27.  
  28.  
  29.  DECLARE SUB SCREENPUSH ()
  30.  DECLARE SUB MouseControl (integer, integer)
  31.  DECLARE FUNCTION GetYesOrNo ()
  32.  DECLARE FUNCTION IsRodent ()
  33.  DECLARE FUNCTION Cen$ (string)
  34.  
  35. ' =========================================================================
  36.  
  37. SUB Initialize (PrinterType) PUBLIC
  38.  
  39.  %Star10X  = 1: %StarNX1000  = 2: %IBMX24  = 3: %LQ2500 = 4 ' Printer constants
  40.  
  41.  LOCAL VideoSegError
  42.  
  43.  Up2B$ = " ["+CHR$(24)+"] to back up "
  44.  Esc2Q$ = " [ESC] for Main Menu "
  45.  F1Help$ = " [F1] for Help "
  46.  F2Fun$ = " [F2] to SAVE or CLEAR data "
  47.  
  48.  EnHelp$ = Cen$ ("You can make an entry in this space now or press [" + _
  49.                              CHR$(25)+"]" + " to go on.")
  50.  IF PrinterType = %Star10X THEN
  51.  
  52. '            <<<  PRINTER CODES FOR STAR GEMINI 10X  >>>
  53.  
  54.  InitPrt$ = CHR$(27) + "F" + CHR$(27) + "P" + CHR$(27) + "W0" + CHR$ (18)
  55.  BoldPrtOn$ = CHR$(27) + "G"
  56.  BoldPrtOff$ = CHR$(27) + "H"
  57.  MicroPrt$ = CHR$(27) + "F" + CHR$(15)
  58.  ElitePrt$ = CHR$(27)+"B"+CHR$(2)
  59.  ItalicPrtOn$ = CHR$(27) + "4"
  60.  ItalicPrtOff$ = CHR$(27) + "5"
  61.  RegPrt$ = CHR$(27) + "E"
  62.  FastPrt$ = CHR$(18) + CHR$(27) + "F"
  63.  WidePrt$ = CHR$(14)
  64.  
  65.  
  66.  ELSEIF PrinterType = %StarNX1000 THEN
  67.  
  68. '              <<<  PRINTER CODES FOR STAR NX - 1000  >>>
  69.  
  70.  InitPrt$ = CHR$(27) + "F" + CHR$(27) + "P" + CHR$(27) + "W0" + CHR$ (18)
  71.  BoldPrtOn$ = CHR$(27) + "G"
  72.  BoldPrtOff$ = CHR$(27) + "H"
  73.  MicroPrt$ = CHR$(15)
  74.  ElitePrt$ = CHR$(27) + "M"
  75.  ItalicPrtOn$ = CHR$(27) + "4"
  76.  ItalicPrtOff$ = CHR$(27) + "5"
  77.  RegPrt$ = CHR$(27) + "E"
  78.  FastPrt$ = CHR$(18) + CHR$(27) + "F"
  79.  WidePrt$ = CHR$(14)
  80.  LQPrt$ = CHR$(27) + "x" + CHR$(1)
  81.  DraftPrt$ = CHR$(27) + "x" + CHR$(0)
  82.  GraphicsChrSetOn$ = CHR$(27) + "t" + CHR$(1) + CHR$(27) + "6" + _
  83.                                                  CHR$(27) + "I" + CHR$(2)
  84.  GraphicsChrSetOff$ = CHR$(27) + "t" + CHR$(0)
  85.  
  86.  ELSEIF PrinterType = %IBMX24 THEN
  87.  
  88. '    <<<  PRINTER CODES FOR PANASONIC KX-P1124 EMULATING PROPRINTER X24  >>>
  89.  
  90.  InitPrt$ = CHR$(27) + "I" + CHR$(0) + CHR$(27) + "[@" + CHR$(4) + CHR$(0) + _
  91.         CHR$(0) + CHR$(0) + CHR$(17) + CHR$(1) + CHR$(27) + "F" + CHR$(27) + _
  92.            "H" + CHR$(18)
  93.  BoldPrtOn$ = CHR$(27) + "G"
  94.  BoldPrtOff$ = CHR$(27) + "H"
  95.  LQPrt$ = CHR$(27) + "I" + CHR$(2)
  96.  MicroPrt$ = CHR$(27)+"I"+CHR$(16)
  97.  MicroLQPrt$ = CHR$(27)+"I"+CHR$(18)
  98.  ElitePrt$ = CHR$(27) + "I" + CHR$(8)
  99.  EliteLQPrt$ = CHR$(27) + "I" + CHR$(10)
  100.  ItalicPrtOn$ = ""
  101.  ItalicPrtOff$ = ""
  102.  RegPrt$ = CHR$(27) + "E"
  103.  FastPrt$ = CHR$(18) + CHR$(27) + "F"
  104.  WidePrt$ = CHR$(14)
  105.  BigPrt$ = CHR$(27) + "[@" + CHR$(4) + CHR$(0) + CHR$(0) + CHR$(0) + _
  106.                  CHR$(17) + CHR$(1) + CHR$(27) + "G"
  107.  
  108.  ELSEIF PrinterType = %LQ2500 THEN
  109.  
  110. '    <<<  PRINTER CODES FOR PANASONIC KX-P1124 EMULATING LQ-2500  >>>
  111.  
  112.  InitPrt$ = CHR$(27) + "F" + CHR$(27) + "P" + CHR$(27) + "W0" + CHR$ (18)
  113.  
  114.  GraphicsChrSetOn$ = CHR$(27) + "t" + CHR$(1) + CHR$(27) + "6" + _
  115.                                                  CHR$(27) + "I" + CHR$(2)
  116.  GraphicsChrSetOff$ = CHR$(27) + "t" + CHR$(0)
  117.  BoldPrtOn$ = CHR$(27) + "G"
  118.  BoldPrtOff$ = CHR$(27) + "H"
  119.  ItalicPrtOn$ = CHR$(27) + "4"
  120.  ItalicPrtOff$ = CHR$(27) + "5"
  121.  RegPrt$ = CHR$(27) + "E"
  122.  FastPrt$ = CHR$(18) + CHR$(27) + "F"
  123.  WidePrt$ = CHR$(14)
  124.  WidePrtOff$ = CHR$ (27) + "W0"
  125.  BigPrtOn$ = CHR$(27) + "w" + CHR$(1) + CHR$(27) + "W" + CHR$(1)
  126.  BigPrtOff$ = CHR$(27) + "w" + CHR$(0) + CHR$(27) + "W" + CHR$(0)
  127.  
  128.  LQPrt$ = CHR$(27) + "x" + CHR$(1)
  129.  DraftPrt$ = CHR$(27) + "x" + CHR$(0)
  130.  MicroPrtOn$ = CHR$(15) '                        137 chr/ln
  131.  MicroPrtOff$ = CHR$(18)
  132.  ElitePrt$ = CHR$(27) + "M"  '                    96 chr/ln
  133.  PicaPrt$ = CHR$(27) + "P"
  134.  ReverseLF$ = CHR$(27) + "j" + CHR$ (30)
  135.  
  136.  END IF
  137. ' _________________________________________________________________________
  138.  
  139. '  GetMonitorType
  140.  
  141.  DEF SEG = &H40
  142.  IF PEEK(&H63)+256*PEEK(&H64)+6 = &H3BA THEN
  143.     ColorDisplay = %False '                      I got this from a .ASM file by
  144.  ELSE                     '                      Mike Mefford -- tho' I don't
  145.     ColorDisplay = %True  '                      speak ASM at all. I just took
  146.  END IF                   '                      the address & byte to check
  147.                           '                      for and it seems to work ...
  148.  
  149. '  CheckVideoAddress
  150.  
  151.  GOSUB SetVideoAddress
  152.  OrigL = CSRLIN: OrigC = CSRLIN
  153.  CALL SCREENPUSH '                               save the screen prior to
  154.  GOSUB WriteAndPeek '                             writing to it ...
  155.  IF VideoSegError THEN
  156.    COLOR 3,0: LOCATE 10,10
  157.    PRINT "ERROR READING MONITOR TYPE. IS THIS A COLOR MONITOR?";
  158.    ColorDisplay = GetYesOrNo
  159.    GOSUB SetVideoAddress
  160.    GOSUB WriteAndPeek
  161.    IF VideoSegError THEN
  162.      COLOR 3,0: LOCATE 12,10
  163.      PRINT "UNABLE TO SET ADDRESS OF DISPLAY CORRECTLY FOR THIS MACHINE"
  164.      LOCATE 14, 14: PRINT "SOME DEEP PROBLEM NEEDS CORRECTED. EXITING NOW."
  165.      STOP
  166.    END IF
  167.  END IF
  168.  
  169.  NeedDCon = (IsRodent <> %False)
  170.  
  171.  IF NeedDCon THEN '                                    calm down the mouse ...
  172.    CALL MouseControl (12, 32)
  173.  END IF                            
  174.  
  175.  COLOR 7, 0
  176.  EXIT SUB
  177. '           ==================================   end of subroutine HBInit
  178.  
  179. SetVideoAddress:
  180.  
  181.  IF ColorDisplay THEN
  182.      VideoSeg& = &HB800: CursorTop = 6: CursorBottom = 7
  183.  ELSE
  184.      VideoSeg& = &HB000: CursorTop = 14: CursorBottom = 15
  185.  END IF
  186.  RETURN
  187.  
  188.  
  189. WriteAndPeek:
  190.  COLOR 7,0: CLS
  191.  COLOR 0,0
  192.  PRINT "01234"
  193.  DEF SEG = VideoSeg&
  194.  FOR N = 0 TO 4
  195.     IF VAL(CHR$(PEEK(2*N))) <> N OR PEEK (2*N+1) <> 0 THEN
  196.       VideoSegError = %True
  197.       RETURN
  198.     END IF
  199.  NEXT
  200.  RETURN
  201.  
  202.  END SUB
  203.  
  204.  
  205.